"use strict";
//interface（接⼝）
//interface 是⼀种定义结构的⽅式，主要作⽤是为：类、对象、函数等规定⼀种契约，这样
//可以确保代码的⼀致性和类型安全，但要注意 interface 只能定义格式，不能包含任何实现 ！
//继承实现接口,定义⼀个类 Person，实现 PersonInterface 接⼝
var Persion9 = /** @class */ (function () {
    //构造方法
    //实现PersonInterface中的属性
    function Persion9(name, age) {
        this.name = name;
        this.age = age;
    }
    //实现接⼝中的 speak ⽅法
    Persion9.prototype.speak = function (n) {
        for (var i = 0; i < n; i++) {
            // 打印出包含名字和年龄的问候语句
            console.log("\u4F60\u597D\uFF0C\u6211\u53EB".concat(this.name, "\uFF0C\u6211\u7684\u5E74\u9F84\u662F").concat(this.age));
        }
    };
    return Persion9;
}());
var per9 = new Persion9("zs", 18);
per9.speak(5);
var user = {
    name: '1233',
    age: 123,
    gender: "123",
    run: function (n) {
        console.log('奔跑了' + n);
    }
};
// user.gender = "132"
console.log(user.name, user.age, user.gender, user.run(5));
var count2 = function (x, y) { return x + y; };
//定义对象结构
var stu4 = {
    name: "123",
    age: 18,
    grade: "123"
};
var Persion10 = /** @class */ (function () {
    //构造方法
    function Persion10(name, age) {
        this.name = name;
        this.age = age;
    }
    Persion10.prototype.speak = function () {
        console.log("接口课和并性");
    };
    return Persion10;
}());
// 总结：何时使⽤接⼝？
// 1. 定义对象的格式： 描述数据模型、API 响应格式、配置对象........等等，是开发中⽤的最多
//    的场景。
// 2. 类的契约：规定⼀个类需要实现哪些属性和⽅法。
// 3. 扩展已有接⼝：⼀般⽤于扩展第三⽅库的类型， 这种特性在⼤型项⽬中可能会⽤到。
